home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 1, No. 07 (1982-03)(Softdisk)(Side A).zip / Softdisk Magazette Volume 1, No. 07 (1982-03)(Softdisk)(Side A).do / SOFTDISK.PROG.bas < prev    next >
BASIC Source File  |  1996-12-24  |  6KB  |  94 lines

  1. 1  REM  SOFTDISK.PROG
  2. 2  GOTO 7
  3. 3 DD$ = "": &  GET DD$: RETURN 
  4. 5 AS = AS +128: IF AS <160  THEN AS = AS +64: RETURN 
  5. 6  PRINT D$"CLOSE "NF$: PRINT D$"OPEN "NF$",L47": RETURN 
  6. 7 Z = 0:W = 1:DL$ = "": FOR I = W TO 37:DL$ = DL$ +"-": NEXT :I$ =  CHR$(9):D$ =  CHR$(4):NF$ = "SOFTDISK.TEXT": TEXT : POKE 1013,76: POKE 1014,0: POKE 1015,3: FOR X1 = 768 TO 818: READ Y1: POKE X1,Y1: NEXT :RD$ = D$ +"READ " +NF$ +",R":WR$ = D$ +"WRITE " +NF$ +",R": ONERR  GOTO 9000
  7. 8 EL$ = "": FOR I = W TO 40:EL$ = EL$ +"=": NEXT 
  8. 20  PRINT D$"OPEN "NF$",L47": PRINT RD$;"0": INPUT RL: INPUT LV: INPUT DT$: PRINT D$: POKE 216,Z:NR = W
  9. 110 RN = NR: PRINT RD$;RN: INPUT RT$:NR = NR +W: IF RT$ = "D" GOTO 1030
  10. 140  INPUT PR$: INPUT VP: INPUT VR$:MR =  VAL(VR$)
  11. 190  FOR I = W TO MR: INPUT RP(I): NEXT : PRINT D$: IF VR$ < >"1" GOTO 210
  12. 201  GOSUB 3340: IF R$ = "G"  THEN NR = W: GOTO 110
  13. 202  IF R$ = "M" GOTO 206
  14. 203  IF R$ = "H" GOTO 201
  15. 204  GOSUB 3300: GOTO 201
  16. 206 R$ = "1": GOTO 380
  17. 210  INVERSE : PRINT "Q=QUIT H=HARDCOPY V=VERBAL OR 1-";MR;: NORMAL : PRINT " ";: GET R$: PRINT D$: IF R$ = "Q" GOTO 9500
  18. 250  IF R$ < >"H" GOTO 270
  19. 260  GOSUB 3000: GOTO 210
  20. 270  IF R$ = "V" GOTO 420
  21. 300  IF  LEN(R$) = W  AND R$ >"0"  AND R$ < = VR$ GOTO 380
  22. 310  GOSUB 3300: GOTO 210
  23. 380 CP =  VAL(R$):NR = RP(CP): GOTO 110
  24. 420  IF VP = Z GOTO 640
  25. 430  GOSUB 3200: INVERSE : PRINT "HARDCOPY OF VERBAL RESPONSE (Y OR N)?";: NORMAL : PRINT " ";: GET R$: PRINT D$: IF R$ = "Y" GOTO 510
  26. 450  IF R$ = "N" GOTO 470
  27. 460  GOSUB 3320: GOTO 430
  28. 470  GOSUB 3200: INVERSE : PRINT "SKIP TO END OF RESPONSE (Y OR N)?";: NORMAL : PRINT " ";: GET R$: PRINT D$: IF R$ = "Y" GOTO 520
  29. 490  IF R$ = "N" GOTO 630
  30. 500  GOSUB 3320: GOTO 470
  31. 510 PS = W: PRINT D$"PR#1": PRINT I$;"40N": PRINT "******* ";DT$;" SOFTDISK FRAME ";RL
  32. 520 CV = Z
  33. 530 PV = CV:CV = VP: PRINT RD$;CV: INPUT VP: GOSUB 3:SD$ = DD$: PRINT D$: PRINT SD$: IF VP < >Z GOTO 530
  34. 560  IF PS < >W GOTO 710
  35. 570 PS = Z: PRINT D$"PR#0": GOTO 840
  36. 630 PV = Z:CV = VP: PRINT RD$;CV: INPUT VP: GOSUB 3:SD$ = DD$: PRINT D$: PRINT SD$: GOTO 710
  37. 640  GOSUB 3200: INVERSE : PRINT "ENTER ONE LINE AT A TIME & HIT RETURN": NORMAL :R$ = "I": GOSUB 3220: GOSUB 10000:SD$ = DD$: IF  LEN(SD$) <40 GOTO 660
  38. 650  GOSUB 3330: GOSUB 3210: GOTO 640
  39. 660 LV = LV +W: ONERR  GOTO 910
  40. 670  PRINT WR$;LV: PRINT VP: PRINT SD$: PRINT WR$;RN: PRINT RT$: PRINT PR$: PRINT LV: PRINT VR$:PV = Z: FOR I = W TO MR: PRINT RP(I): NEXT : PRINT D$: IF  LEN(SD$) = 39  THEN  GOSUB 3210
  41. 695  GOSUB 3210: PRINT SD$
  42. 700 CV = LV: PRINT WR$;"0": PRINT RL: PRINT LV: PRINT DT$: PRINT D$: GOSUB 6: IF R$ = "I" GOTO 855
  43. 710  INVERSE : PRINT "N=NXT D=DEL C=CHNG I=INSERT G=GOBACK";: NORMAL : PRINT " ";: GET R$: PRINT D$: IF R$ = "D" GOTO 950
  44. 730  IF R$ = "C" GOTO 920
  45. 740  IF R$ = "I" GOTO 850
  46. 750  IF R$ = "G" GOTO 840
  47. 760  IF R$ = "N" GOTO 780
  48. 770  GOSUB 3300: GOTO 710
  49. 780  IF VP < >Z GOTO 800
  50. 790 EM$ = "THAT WAS THE LAST LINE": GOSUB 2000: GOSUB 3200: GOTO 710
  51. 800 PV = CV:CV = VP: PRINT RD$;CV: INPUT VP: GOSUB 3:SD$ = DD$: PRINT D$: GOSUB 3210: PRINT SD$: GOTO 710
  52. 840 NR = RL: GOTO 110
  53. 850  GOSUB 3210: GOSUB 3220
  54. 855  GOSUB 10000:SD$ = DD$: IF SD$ = ""  THEN CL =  PEEK(37): VTAB (W): CALL  -868: VTAB (CL): GOTO 710
  55. 857  IF  LEN(SD$) <40 GOTO 870
  56. 860  GOSUB 3330: GOTO 850
  57. 870 LV = LV +W: ONERR  GOTO 910
  58. 880  PRINT WR$;LV: PRINT VP: PRINT SD$: PRINT RD$;CV: INPUT PP: GOSUB 3:PD$ = DD$: PRINT WR$;CV: PRINT LV: PRINT PD$: PRINT D$:PV = CV: GOTO 700
  59. 910 EM$ = "DISK IS FULL": GOSUB 2000:LV = LV -W: POKE 216,Z: GOTO 840
  60. 920  INPUT SD$: IF  LEN(SD$) <40 GOTO 940
  61. 930  GOSUB 3330: GOSUB 3200: GOTO 920
  62. 940  PRINT WR$;CV: PRINT VP: PRINT SD$: PRINT D$: GOSUB 6: FOR I = W TO 3: GOSUB 3200: NEXT : PRINT SD$: GOTO 710
  63. 950  IF PV = Z GOTO 990
  64. 960  PRINT RD$;PV: INPUT PP: GOSUB 3:PD$ = DD$: PRINT WR$;PV: PRINT VP: PRINT PD$: PRINT D$: GOSUB 6: IF VP = Z GOTO 840
  65. 980 CV = VP: PRINT RD$;CV: INPUT VP: GOSUB 3:SD$ = DD$: PRINT D$: GOSUB 3210: GOSUB 3200: PRINT SD$: GOTO 710
  66. 990  PRINT WR$;RN: PRINT RT$: PRINT PR$: PRINT VP: PRINT VR$: FOR I = W TO MR: PRINT RP(I): NEXT : PRINT D$: GOSUB 6: IF VP = Z GOTO 840
  67. 1020 CV = VP: PRINT RD$;CV: INPUT VP: GOSUB 3:SD$ = DD$: PRINT D$: GOSUB 3210: GOSUB 3200: PRINT SD$: GOTO 710
  68. 1030  INPUT BF$: INPUT AF$: GOSUB 3:SD$ = DD$: PRINT D$: IF BF$ = "H"  THEN  HOME : INVERSE : PRINT "SOFTDISK MAGAZETTE  ";DT$;"  FRAME ";RN: NORMAL :RL = RN
  69. 1080  PRINT SD$: IF AF$ = "N" GOTO 110
  70. 1110 BL =  VAL(AF$): FOR I = W TO BL: PRINT " ": NEXT : GOTO 110
  71. 2000  GOSUB 3200: FLASH : PRINT EM$: NORMAL : FOR I = 1 TO 3000: NEXT : RETURN 
  72. 3000  VTAB ( PEEK(37)): CALL  -868: PRINT D$"PR#1": PRINT I$;"41N": PRINT EL$:PL$ = "":LC = 1879: FOR K = W TO 3:LC = LC -984: FOR J = W TO 8:LC = LC +128: FOR I = W TO 40:AS =  PEEK(LC +I): IF AS <64  THEN  GOSUB 5
  73. 3052 PL$ = PL$ + CHR$(AS): NEXT I: PRINT PL$:PL$ = "": NEXT J: NEXT K: PRINT EL$: PRINT D$"PR#0": RETURN 
  74. 3200  VTAB ( PEEK(37)): CALL  -868: FOR X = 1 TO 1000: NEXT : RETURN 
  75. 3210  VTAB ( PEEK(37)): CALL  -868: RETURN 
  76. 3220 CL =  PEEK(37): VTAB (W): CALL  -868: FLASH : PRINT "*";: NORMAL : PRINT " RETURN W. NO DATA STOPS INSERT MODE ";: FLASH : PRINT "*": NORMAL : VTAB (CL +W): RETURN 
  77. 3300 EM$ = "INVALID RESPONSE -- ENTER AGAIN": GOSUB 2000: GOSUB 3200: RETURN 
  78. 3320 EM$ = "ANSWER Y OR N": GOSUB 2000: RETURN 
  79. 3330 EM$ = "ONE LINE AT A TIME PLEASE": GOSUB 2000: GOSUB 3200: RETURN 
  80. 3340  INVERSE : PRINT "Q=QUIT H=HARDCOPY G=GOBACK M=MORE";: NORMAL : PRINT " ";: GET R$: PRINT D$: IF R$ = ""  THEN R$ = "M"
  81. 3342  IF R$ = "Q" GOTO 9500
  82. 3344  IF R$ = "H"  THEN  GOSUB 3000
  83. 3346  RETURN 
  84. 9000  HOME : VTAB (12): INVERSE : PRINT "SOFTDISK.TEXT HAS BEEN CLOBBERED": NORMAL : END 
  85. 9500  PRINT D$"CLOSE": PRINT D$;"RUN KICK.IT.OFF"
  86. 10000 DD$ = ""
  87. 10020  GET A$: PRINT A$;: IF A$ =  CHR$(13)  THEN  RETURN 
  88. 10040  IF A$ =  CHR$(8)  THEN 10100
  89. 10050  IF  ASC(A$) <32  THEN  INVERSE : PRINT  CHR$( ASC(A$) +64);: NORMAL 
  90. 10060 DD$ = DD$ +A$: GOTO 10020
  91. 10100  IF  LEN(DD$) = 0  THEN  PRINT " ";: GOTO 10020
  92. 10115  CALL  -868: IF  LEN(DD$) = 1  THEN 10000
  93. 10130 DD$ =  LEFT$(DD$, LEN(DD$) -1): GOTO 10020
  94. 15000  DATA   201,190 ,240,3,76,201,222,32,177,0,32,227,223,32,44,213,232,189,0,2,208,250,134,157,138,32,82,228,160,0,145,131,200,165,113,145,131,200,165,114,145,131,160,2,162,0,165,157,76,226,229